fix OpenStruct for 1.9.3

Andrew Cantino 10 years ago
parent
commit
7ecd099507
1 changed files with 15 additions and 0 deletions
  1. 15 0
      app/models/scenario_import.rb

+ 15 - 0
app/models/scenario_import.rb

@@ -237,5 +237,20 @@ class ScenarioImport
237 237
       yield 'propagate_immediately', propagate_immediately, boolean if self['propagate_immediately'].present? && propagate_immediately.requires_merge?
238 238
       yield 'disabled', disabled, boolean if disabled.requires_merge?
239 239
     end
240
+
241
+    # Unfortunately Ruby 1.9's OpenStruct doesn't expose [] and []=.
242
+    unless instance_methods.include?(:[]=)
243
+      def [](key)
244
+        self.send(sanitize key)
245
+      end
246
+
247
+      def []=(key, val)
248
+        self.send("#{sanitize key}=", val)
249
+      end
250
+
251
+      def sanitize(key)
252
+        key.gsub(/[^a-zA-Z0-9_-]/, '')
253
+      end
254
+    end
240 255
   end
241 256
 end